package vista;

import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.KeyListener;
import java.awt.event.WindowListener;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableModel;

public class InterfazGraficaCompra 
{
	private JButton btnAceptar,btnCancelar,btnSalir,btnBuscarProveedor;
    private JTextField txtPorcImpuesto,txtProveedor;
    private JLabel lblNroFactura,lblFecha,lblTotal;
    private JTable tabla;
    private Ventana ventana;
    
    public InterfazGraficaCompra()
    {
    	 ImageIcon imgAceptar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "aceptar.png"));
	     ImageIcon imgCancelar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "cancelar.png"));
	     ImageIcon imgSalir= new ImageIcon(getClass().getResource("imagenes" + File.separator + "salir.png"));
	     
	     FabricaAbstractaVentana fabricaVentanas= FabricaAbstractaVentana.getInstance();
		 ventana= fabricaVentanas.crearVentanaIndependiente();
			
		 ventana.asignarTitulo("Compras");
		 JLabel lblTitulo= new JLabel("COMPRA");
	     JLabel lblCodigo= new JLabel("Correlativo: ");
	     JLabel lblProveedor= new JLabel("Proveedor: ");
	     JLabel lblFechaE= new JLabel("Fecha Emision: ");
	     JLabel lblPorcImpuesto= new JLabel("Porc Impuesto:");
	     JLabel lblIngredientes= new JLabel("INGREDIENTES");
	     JLabel lblTotalPagar= new JLabel("Total BsF: ");
	     
	     lblNroFactura= new JLabel("1000");
	     lblFecha= new JLabel("00/00/0000");
	     lblTotal= new JLabel("0.0");
	     
	     
	     JToolBar barraHerramientas= new JToolBar();
	     
	      
	     btnBuscarProveedor= new JButton("...");
	   
	     btnAceptar= new JButton("ACEPTAR",imgAceptar);
	     btnCancelar= new JButton("CANCELAR",imgCancelar);
	     btnSalir= new JButton("SALIR",imgSalir);
	        
	     btnBuscarProveedor.setActionCommand("BuscarProveedor");
	     
	     txtPorcImpuesto= new JTextField();
	     txtProveedor= new JTextField();
	      
	        
	     txtPorcImpuesto.setName("txtPorcImpuesto");
	     txtProveedor.setName("txtProveedor");
	        
	     txtProveedor.setEnabled(false); 

	     barraHerramientas.setFloatable(false);
	     barraHerramientas.setOpaque(false);
	     barraHerramientas.setBorderPainted(false);
	        

	     btnAceptar.setVerticalTextPosition(SwingConstants.BOTTOM);
	     btnAceptar.setHorizontalTextPosition(SwingConstants.CENTER);
	     btnAceptar.setOpaque(false);
	     btnAceptar.setBorderPainted(false); 


	     btnCancelar.setVerticalTextPosition(SwingConstants.BOTTOM);
	     btnCancelar.setHorizontalTextPosition(SwingConstants.CENTER);
	     btnCancelar.setOpaque(false);
	     btnCancelar.setBorderPainted(false);

	     btnSalir.setVerticalTextPosition(SwingConstants.BOTTOM);
	     btnSalir.setHorizontalTextPosition(SwingConstants.CENTER);
	     btnSalir.setOpaque(false);
	     btnSalir.setBorderPainted(false);
	   
	     barraHerramientas.add(btnAceptar);
	     barraHerramientas.addSeparator();
	     barraHerramientas.addSeparator();
	     barraHerramientas.add(btnCancelar);
	     barraHerramientas.addSeparator();
	     barraHerramientas.addSeparator();
	     barraHerramientas.add(btnSalir);
	        
	     tabla= new JTable();
         JScrollPane scroll = new JScrollPane(tabla,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
         

         lblTitulo.setFont(new Font(Font.SERIF,Font.BOLD,20));
         lblCodigo.setFont(new Font(Font.DIALOG,Font.BOLD,15));
         lblNroFactura.setFont(new Font(Font.DIALOG,Font.BOLD,15));
         lblFechaE.setFont(new Font(Font.DIALOG,Font.BOLD,15));
         lblFecha.setFont(new Font(Font.DIALOG,Font.BOLD,15));
         lblProveedor.setFont(new Font(Font.DIALOG,Font.BOLD,15));
         lblPorcImpuesto.setFont(new Font(Font.DIALOG,Font.BOLD,15));
         lblTotalPagar.setFont(new Font(Font.DIALOG,Font.BOLD,15));
         lblTotal.setFont(new Font(Font.DIALOG,Font.BOLD,15));
         lblIngredientes.setFont(new Font(Font.DIALOG,Font.BOLD,15));
         
         ventana.agregarComponente(lblTitulo,270,5,300,30);
         ventana.agregarComponente(lblCodigo, 55, 55, 100, 20);
	     ventana.agregarComponente(lblNroFactura,150,55,100,20);
	     ventana.agregarComponente(lblFechaE, 360, 55, 130, 20);
	     ventana.agregarComponente(lblFecha, 480,55, 130, 20);
	     ventana.agregarComponente(lblProveedor,55, 105, 140, 20);
	     ventana.agregarComponente(lblPorcImpuesto,360, 105, 130, 20);
	     ventana.agregarComponente(lblTotalPagar,250,330,130,20);
	     ventana.agregarComponente(lblTotal, 340,330, 130, 20);
	     ventana.agregarComponente(txtProveedor, 155, 100, 135, 25);
	     ventana.agregarComponente(txtPorcImpuesto,480,100,100,25);
	     ventana.agregarComponente(btnBuscarProveedor, 300, 103, 20, 20);
	     ventana.agregarComponente(lblIngredientes,256,150,135, 20);
	     ventana.agregarComponente(scroll, 40,175,550,150);
	     ventana.agregarComponente(barraHerramientas,171,370,280, 90);
	     
	     ventana.asignarTamanio(640,500);
    }
    
    public void visualizarVentana()
	{
		ventana.visualizar();
	}
	
	public void descargarMemoria()
	{
		ventana.descargarMemoria();
	}
	
	public void addListener(WindowListener escuchador)
	{
	   ventana.addListener(escuchador);
	}
	
	public void addListener(ActionListener escuchador)
	{
		btnBuscarProveedor.addActionListener(escuchador);
		btnAceptar.addActionListener(escuchador);
	    btnCancelar.addActionListener(escuchador);
	    btnSalir.addActionListener(escuchador);
	   
	}
	
	
	public void addListener(KeyListener escuchador)
	{
		txtPorcImpuesto.addKeyListener(escuchador);
	}
	
	
	public long getNroFactura()
	{
		return Long.parseLong(lblNroFactura.getText());
		
	}
	
	public void setNroFactura(long nroFactura)
	{
		lblNroFactura.setText(String.valueOf(nroFactura));
	}
	
	public void setTotal(double total)
	{
		lblTotal.setText(String.valueOf(total));
	}
	
	public double getTotal()
	{
		return Double.parseDouble(lblTotal.getText());
	}
	
	public String getFecha()
	{
		return lblFecha.getText();
	}
	
	public void setFecha(String fecha)
	{
		lblFecha.setText(fecha);
	}
	
	public void asignarProveedor(String proveedor)
	{
		txtProveedor.setText(proveedor);
	}
	
	public String getProveedor()
	{
		return txtProveedor.getText();
	}
	
	
	
	public float getPorcImpuesto()
	{
		return Float.parseFloat(txtPorcImpuesto.getText());
	}
	
	
	
	public void setPorcImpuesto(float porc)
	{
		txtPorcImpuesto.setText(String.valueOf(porc));
	}
	
	 public void asignarDatosTabla(TableModel modeloTabla)
	 {
		 tabla.setModel(modeloTabla);
	 }
	 
	 public int getFilaSeleccionada()
     {
			return tabla.getSelectedRow();
	 }
	 
	 public TableColumnModel getTableColumnModel()
	 {
		 return tabla.getColumnModel();
	 }
	 
	 public void asignarValoresEdicionTabla(int row,int col)
	 {
		  if (tabla.isEditing())
		  {
		    tabla.getCellEditor().cancelCellEditing();
		  }
         
	 }
	 
	 public VentanaIndependiente getVentana()
	 {
	    	return (VentanaIndependiente) ventana;
	 }

}
